All samples
# Function Vulcano plot
volcano_plot <- function(res, title = NULL, subtitle = NULL, annotate_by = NULL, type ='ALS'){
res <-
mutate(res,
sig = case_when(
adj.P.Val >= 0.05 ~ "non_sig",
adj.P.Val < 0.05 & abs(logFC) < 1 ~ "sig",
adj.P.Val < 0.05 & abs(logFC) >= 1 ~ "sig - strong"
)) %>%
mutate(direction = ifelse(logFC > 0, "up", "down")) %>%
mutate(logFC = case_when(
logFC > 5 ~ Inf,
logFC < -5 ~ -Inf,
TRUE ~ logFC
)) %>%
mutate(class = paste(sig, direction))
if( type == "ALS"){
xpos <- 0.5
ymax <- 50
xlim <- c(-3,3)
}else{
xpos <- 0.025
ymax <- 8.5
xlim <- c(-0.042, 0.042)
}
de_tally <- group_by(res, sig, direction, class) %>% tally() %>%
filter(sig != "non_sig") %>%
mutate( position = ifelse(sig == "sig", xpos, 2) ) %>%
mutate(position = ifelse( direction == "down", -1 * position, position)) %>%
mutate(n = formatC(n, format="f", big.mark=",", digits=0))
plot <- res %>%
mutate( P.Value = ifelse( P.Value < 1e-90, Inf, P.Value)) %>% #threshold at 1e16
ggplot(aes(x = logFC, y = -log10(P.Value))) +
#geom_point(aes(colour = class ), size = 0.5) +
rasterise(geom_point(aes(colour = class ), size = 0.5), dpi = 300) +
scale_colour_manual(values = c("non_sig up" = "gray",
"non_sig down" = "gray",
"sig up" = "#EB7F56",
"sig - strong up" = "#B61927",
"sig down" = "#4F8FC4",
"sig - strong down" = "dodgerblue4"
)) +
theme_bw() +
labs(y = expression(-log[10]~P~value), x = expression(log[2]~"(fold change)"), title = title, subtitle = subtitle) +
guides(colour = FALSE) +
scale_y_continuous(expand = c(0,0), limits = c(0,ymax)) +
theme_bw() +
theme(
plot.title = element_text(hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5),
panel.border = element_blank(),
axis.ticks = element_line(colour = "black")
) +
geom_text(fontface = "bold", data = de_tally, aes(x = position, y = ymax - 0.5, label = n, colour = class), size = 2.5 ) +
scale_x_continuous(limits = xlim)
if(!is.null(annotate_by)){
plot <- plot +
ggrepel::geom_text_repel(
fontface = "italic",
data = filter(res, symbol %in% annotate_by),
aes(x = logFC, y = -log10(P.Value), label = symbol),
min.segment.length = unit(0, "lines"),
size = 2.5) +
geom_point(
data = filter(res, symbol %in% annotate_by), size = 0.8, colour = "black"
) +
geom_point(aes(colour = class ),
data = filter(res, symbol %in% annotate_by), size = 0.6
)
}
return(plot)
}
LPS
load("~/Documents/MiGASti/docs/2nd_pass/res_LPS_name.Rdata")
res_LPS <- res_LPS_name
res_sign <- subset(res_LPS, adj.P.Val < 0.05)
check_genes <- merge(res_sign, Patir, by = "symbol")
check_genes2 <- merge(check_genes, LPS_S, by = "symbol")
list(check_genes)
## [[1]]
## symbol ensembl logFC AveExpr t
## 1 ABI3 ENSG00000108798.9 -0.7315467 3.7911611 -6.486933
## 2 ADAM28 ENSG00000042980.12 -0.6134994 6.1627348 -9.412863
## 3 ADAP2 ENSG00000184060.11 -0.3329474 6.0925928 -4.406846
## 4 ALOX5AP ENSG00000132965.9 -0.6230863 6.8259539 -6.964444
## 5 AOAH ENSG00000136250.11 0.2342990 3.1517287 2.527523
## 6 APBB1IP ENSG00000077420.16 -0.9073355 4.9145727 -10.037539
## 7 APOC2 ENSG00000234906.10 -0.6831826 5.3964282 -5.782512
## 8 ARHGAP15 ENSG00000075884.14 -0.2739778 4.8817078 -4.247762
## 9 ARHGAP25 ENSG00000163219.11 -0.2580106 5.0925719 -3.758566
## 10 ARHGAP45 ENSG00000180448.10 -0.4256157 5.4207278 -3.312862
## 11 ARHGDIB ENSG00000111348.9 -0.7032181 6.4300007 -7.426466
## 12 ARPC1B ENSG00000130429.14 -0.4188725 7.9286789 -6.042440
## 13 ATP8B4 ENSG00000104043.14 -0.6545184 4.7920418 -6.809694
## 14 B3GNT5 ENSG00000176597.12 -0.2445704 6.7502508 -3.331380
## 15 BIN2 ENSG00000110934.11 -0.2751920 5.3470531 -3.442571
## 16 BLNK ENSG00000095585.16 -0.4081488 4.1791720 -4.414480
## 17 BTK ENSG00000010671.15 -0.3734266 4.2360126 -4.336830
## 18 C1QB ENSG00000173369.16 0.5752284 7.1969202 5.328431
## 19 C3AR1 ENSG00000171860.4 -0.3691277 7.5407682 -4.757979
## 20 CASP1 ENSG00000137752.24 0.3075571 6.9683349 4.714054
## 21 CCR1 ENSG00000163823.4 -0.7466040 6.7706025 -9.311077
## 22 CD14 ENSG00000170458.14 -0.8342929 8.7282612 -8.231798
## 23 CD300A ENSG00000167851.14 -1.0234111 6.9885587 -10.287958
## 24 CD33 ENSG00000105383.15 -0.4697234 4.3808453 -6.140100
## 25 CD37 ENSG00000104894.12 -0.2871387 3.4428707 -2.735643
## 26 CD4 ENSG00000010610.10 -0.3790571 3.3450555 -3.265742
## 27 CD53 ENSG00000143119.14 -0.3513510 8.4900630 -5.718552
## 28 CD68 ENSG00000129226.14 -0.4257585 9.0011578 -5.434400
## 29 CD69 ENSG00000110848.8 -0.3197752 6.1626867 -3.786885
## 30 CD84 ENSG00000066294.14 -0.2704371 5.9955769 -4.158287
## 31 CD86 ENSG00000114013.16 0.2367185 5.7279397 3.171887
## 32 CH25H ENSG00000138135.6 0.2302772 5.1130619 2.489147
## 33 CLEC17A ENSG00000187912.11 -0.7295723 2.4022583 -6.345940
## 34 CLEC7A ENSG00000172243.17 -0.7350716 4.8416580 -8.467986
## 35 CMKLR1 ENSG00000174600.14 -0.9186878 4.4933167 -7.799033
## 36 CSF1R ENSG00000182578.13 -0.3952929 7.1434087 -3.555064
## 37 CSF2RA ENSG00000198223.16 -0.2552374 6.2130116 -4.089678
## 38 CSF2RA ENSG00000198223.16_PAR_Y -0.2552374 6.2130116 -4.089678
## 39 CTSC ENSG00000109861.16 -0.4547585 6.2200035 -6.585448
## 40 CXCL16 ENSG00000161921.15 -0.5102357 8.8033467 -7.409407
## 41 CYFIP1 ENSG00000273749.5 -0.6723250 6.7611452 -6.654383
## 42 CYTH4 ENSG00000100055.21 -0.4427319 5.8158777 -4.818380
## 43 CYTIP ENSG00000115165.10 -0.6304457 5.6586007 -7.915956
## 44 DEF6 ENSG00000023892.11 -0.6346078 3.6090877 -5.111730
## 45 DHRS9 ENSG00000073737.16 -0.5106057 5.3305398 -6.101016
## 46 DOCK2 ENSG00000134516.16 -0.5246699 5.6562599 -5.122080
## 47 DOCK8 ENSG00000107099.15 -0.3847695 5.9901877 -4.798606
## 48 EBI3 ENSG00000105246.6 1.1938992 7.0805462 13.666333
## 49 EVI2B ENSG00000185862.7 -0.6930138 4.6909982 -7.892547
## 50 FCGR1A ENSG00000150337.13 -0.2581525 4.8654995 -2.594466
## 51 FCGR2A ENSG00000143226.13 0.6414486 8.2797671 9.195833
## 52 FGL2 ENSG00000127951.7 -1.0309722 4.4359741 -10.165822
## 53 GMFG ENSG00000130755.13 -0.4607833 5.4033755 -5.506778
## 54 GPR183 ENSG00000169508.7 -1.0689552 8.3141886 -13.030532
## 55 GPR34 ENSG00000171659.15 -0.6478412 4.2699791 -6.231691
## 56 HAMP ENSG00000105697.9 1.3333697 5.6061563 9.768593
## 57 HAVCR2 ENSG00000135077.9 -0.6648638 7.9920179 -10.906802
## 58 HCK ENSG00000101336.14 0.7526149 7.1761990 8.984082
## 59 HCLS1 ENSG00000180353.11 -0.3372226 7.3120062 -4.831647
## 60 HCST ENSG00000126264.9 -0.4133180 4.5630120 -4.608477
## 61 HHEX ENSG00000152804.11 -0.4702911 3.3498697 -3.889652
## 62 HLA-DMA ENSG00000204257.15 -0.2354186 4.6914327 -2.436662
## 63 HLA-DPA1 ENSG00000231389.7 -0.2134834 6.8111875 -2.430160
## 64 HLA-DQB1 ENSG00000179344.16 -0.4360125 5.1011760 -5.191196
## 65 HLA-DRA ENSG00000204287.14 -0.3363907 9.0453887 -4.532659
## 66 HLA-DRB1 ENSG00000196126.11 -0.3389900 7.5880743 -4.571713
## 67 HLA-DRB5 ENSG00000198502.6 -0.2963674 4.8369912 -3.724400
## 68 HPGDS ENSG00000163106.10 -0.4173363 3.8234974 -5.223995
## 69 IFI16 ENSG00000163565.18 -0.1444604 6.7978895 -2.852923
## 70 IFI30 ENSG00000216490.4 -1.1086826 10.1677144 -13.547426
## 71 IGSF6 ENSG00000140749.9 -0.2770280 6.1660628 -3.036055
## 72 IKZF1 ENSG00000185811.18 0.2151413 4.5457988 2.560553
## 73 IL13RA1 ENSG00000131724.11 -0.2988303 5.0655930 -2.875537
## 74 IL18 ENSG00000150782.12 -0.6002094 5.0500839 -8.016989
## 75 IL6R ENSG00000160712.13 -0.4927689 6.6645661 -6.746120
## 76 INPP5D ENSG00000168918.14 -0.4069943 4.5652373 -4.011130
## 77 IRF5 ENSG00000128604.20 -0.3558826 6.2883763 -3.596496
## 78 IRF8 ENSG00000140968.11 -0.2236723 6.8269730 -2.439642
## 79 ITGAL ENSG00000005844.17 -0.7872375 3.5490661 -6.651881
## 80 ITGAM ENSG00000169896.17 -0.8512693 4.5031536 -8.751972
## 81 ITGAX ENSG00000140678.16 -0.5856791 7.2331740 -6.463198
## 82 ITGB2 ENSG00000160255.18 -0.6678426 7.5843897 -6.513742
## 83 KLHL6 ENSG00000172578.12 -0.7791759 5.1703633 -9.268448
## 84 LAPTM5 ENSG00000162511.8 -0.7174323 9.7779171 -8.785836
## 85 LAT2 ENSG00000086730.17 -0.3583015 6.9026984 -5.486108
## 86 LCP2 ENSG00000043462.12 -0.3060499 6.8054676 -3.448254
## 87 LGALS9 ENSG00000168961.17 -0.7055934 4.6428127 -7.269238
## 88 LHFPL2 ENSG00000145685.14 -0.4601202 7.7232487 -4.603045
## 89 LILRB1 ENSG00000104972.15 0.4928060 4.5552644 4.650801
## 90 LILRB2 ENSG00000131042.14 1.1554053 3.3414952 8.522249
## 91 LPAR5 ENSG00000184574.10 -0.6239238 4.3940775 -5.338730
## 92 LPAR6 ENSG00000139679.15 -0.5045018 6.1534601 -5.611465
## 93 LPXN ENSG00000110031.12 -0.5013470 7.7409306 -7.771368
## 94 MAFB ENSG00000204103.4 0.3167431 7.3341153 3.048342
## 95 MILR1 ENSG00000271605.6 -0.4621384 3.9703913 -5.464645
## 96 MPEG1 ENSG00000197629.5 -1.1090466 3.5489084 -7.492251
## 97 MS4A4A ENSG00000110079.18 -0.8120756 4.5578156 -8.767893
## 98 MS4A7 ENSG00000166927.13 -0.2572217 7.3967085 -4.459356
## 99 MSR1 ENSG00000038945.15 -0.9160470 6.7198243 -10.500710
## 100 MYO1F ENSG00000142347.17 -0.4412426 5.7714534 -4.519963
## 101 NAGA ENSG00000198951.11 -0.4190158 5.0148001 -4.485858
## 102 NCF4 ENSG00000100365.15 -0.3901339 5.0665349 -5.022411
## 103 NCKAP1L ENSG00000123338.13 -0.5318320 6.0226397 -5.862864
## 104 OLFML3 ENSG00000116774.12 -0.4681906 3.6137227 -4.389767
## 105 OLR1 ENSG00000173391.9 -0.6663421 7.8076232 -8.864137
## 106 OSM ENSG00000099985.4 -0.5493470 7.0974084 -5.689848
## 107 PARVG ENSG00000138964.17 -0.4855933 4.8969656 -5.950795
## 108 PIK3AP1 ENSG00000155629.15 0.6031713 7.0864739 5.393780
## 109 PIK3CG ENSG00000105851.11 -0.5958851 5.8888407 -6.924368
## 110 PLXDC2 ENSG00000120594.17 -0.9750054 5.6766889 -9.763901
## 111 PPP1R18 ENSG00000146112.12 -0.3175610 5.0932462 -3.919971
## 112 PTPN6 ENSG00000111679.17 -0.4164296 6.6842107 -5.467143
## 113 PTPRC ENSG00000081237.20 -0.5095680 6.9413924 -6.656446
## 114 PYCARD ENSG00000103490.14 -0.8893135 3.4275348 -8.312978
## 115 REEP4 ENSG00000168476.12 -0.6537758 3.0745502 -5.945496
## 116 RGS1 ENSG00000090104.12 -0.6102096 9.6429005 -8.162957
## 117 RGS10 ENSG00000148908.15 -0.5320326 5.0037964 -7.724527
## 118 RNASE6 ENSG00000169413.3 -0.3936796 2.1697173 -3.532347
## 119 SAMSN1 ENSG00000155307.18 0.2634724 7.4894326 3.433102
## 120 SASH3 ENSG00000122122.10 -0.4514557 5.1266545 -4.249174
## 121 SCIN ENSG00000006747.15 -0.7827019 7.0413487 -9.373276
## 122 SELPLG ENSG00000110876.9 -0.7980377 5.4633307 -7.147707
## 123 SERPINA1 ENSG00000197249.13 0.6239298 7.5713026 6.733910
## 124 SIGLEC11 ENSG00000161640.15 -0.6041310 0.6942928 -3.566824
## 125 SIGLEC7 ENSG00000168995.13 -0.5495042 2.1303686 -4.670219
## 126 SIGLEC9 ENSG00000129450.8 -0.5691580 5.1672295 -7.470732
## 127 SIRPB2 ENSG00000196209.12 -0.3081124 3.0349307 -2.537399
## 128 SLC11A1 ENSG00000018280.17 -0.3600509 7.3775998 -4.606074
## 129 SLC15A3 ENSG00000110446.11 -0.3090272 5.1611519 -3.725619
## 130 SLC2A5 ENSG00000142583.17 -0.5445976 5.0352148 -5.758004
## 131 SLC37A2 ENSG00000134955.11 -1.4181665 4.9189941 -11.322755
## 132 SLC7A7 ENSG00000155465.18 0.2510786 6.1375594 3.067621
## 133 SP140 ENSG00000079263.19 -0.2884089 3.2306708 -3.398323
## 134 SP140L ENSG00000185404.16 -0.1766879 4.3909756 -2.563167
## 135 SPP1 ENSG00000118785.14 -0.8579575 12.8814276 -9.207731
## 136 SRGN ENSG00000122862.5 -0.1888714 9.6752096 -2.899416
## 137 ST6GAL1 ENSG00000073849.15 -0.5710720 6.0708180 -5.313297
## 138 STAB1 ENSG00000010327.10 -0.5073964 4.2096668 -3.582153
## 139 SYK ENSG00000165025.15 -0.3793170 5.7141837 -5.106462
## 140 TAL1 ENSG00000162367.11 -0.3076033 2.4931984 -3.125826
## 141 TBXAS1 ENSG00000059377.17 -0.5175607 5.7943201 -7.175636
## 142 TFEC ENSG00000105967.16 -0.1846349 5.2285956 -2.699136
## 143 TLR1 ENSG00000174125.8 -0.2372398 5.9448292 -3.338279
## 144 TLR3 ENSG00000164342.12 -0.3008746 3.2524804 -3.292660
## 145 TLR6 ENSG00000174130.12 -0.2897109 2.9606228 -2.980686
## 146 TMC8 ENSG00000167895.14 -0.4539080 2.0237356 -3.447312
## 147 TMEM106A ENSG00000184988.8 0.5185647 4.9457200 7.603281
## 148 TMEM119 ENSG00000183160.9 -0.9786815 3.9833132 -7.692008
## 149 TNFAIP8L2 ENSG00000163154.6 -0.3363110 4.0569107 -4.035028
## 150 TNFRSF1B ENSG00000028137.19 0.4753121 9.3800728 3.591034
## 151 TNFSF8 ENSG00000106952.7 -0.1821785 4.7434476 -2.414751
## 152 TRAF3IP3 ENSG00000009790.15 -0.3932434 3.6228604 -4.091463
## 153 TREM2 ENSG00000095970.16 -0.6410849 4.8308940 -5.426079
## 154 TRIM22 ENSG00000132274.16 0.2566126 5.3109085 2.760553
## 155 TRIM38 ENSG00000112343.11 -0.2874952 5.7795323 -5.401851
## 156 TYROBP ENSG00000011600.11 -0.6820008 7.8925205 -8.208443
## 157 VAMP8 ENSG00000118640.11 -0.6303839 5.8357256 -7.982244
## 158 VAV1 ENSG00000141968.8 0.6199533 4.5907131 6.624206
## 159 WAS ENSG00000015285.10 -0.5500483 0.6405715 -3.526995
## 160 WDFY4 ENSG00000128815.19 -0.3731111 5.3762383 -3.300569
## P.Value adj.P.Val z.std
## 1 3.319408e-10 7.977809e-09 -6.283075
## 2 9.503297e-19 1.168357e-16 -8.840803
## 3 1.442676e-05 1.103673e-04 -4.337263
## 4 1.876747e-11 5.795181e-10 -6.715304
## 5 1.196448e-02 3.773504e-02 2.513190
## 6 7.768086e-21 1.295514e-18 -9.362759
## 7 1.741729e-08 2.869813e-07 -5.635874
## 8 2.810782e-05 1.979728e-04 -4.188279
## 9 2.035151e-04 1.127446e-03 -3.714613
## 10 1.031716e-03 4.583236e-03 -3.281732
## 11 9.982428e-13 4.039092e-11 -7.130749
## 12 4.195547e-09 8.022572e-08 -5.876293
## 13 4.771648e-11 1.337945e-09 -6.577892
## 14 9.650422e-04 4.326448e-03 -3.300525
## 15 6.528037e-04 3.071669e-03 -3.408670
## 16 1.378506e-05 1.059229e-04 -4.347257
## 17 1.944800e-05 1.430737e-04 -4.271136
## 18 1.870597e-07 2.371195e-06 5.211758
## 19 2.957837e-06 2.733897e-05 -4.673726
## 20 3.596198e-06 3.238098e-05 4.633451
## 21 2.016727e-18 2.308514e-16 -8.756351
## 22 4.693476e-15 2.961059e-13 -7.834865
## 23 1.075031e-21 2.041387e-19 -9.569424
## 24 2.438629e-09 4.938803e-08 -5.965515
## 25 6.570528e-03 2.266885e-02 -2.717862
## 26 1.210334e-03 5.254186e-03 -3.236434
## 27 2.420248e-08 3.858515e-07 -5.578914
## 28 1.074503e-07 1.455359e-06 -5.313651
## 29 1.825762e-04 1.029891e-03 -3.741980
## 30 4.121342e-05 2.765683e-04 -4.100570
## 31 1.662058e-03 6.928192e-03 3.144791
## 32 1.331890e-02 4.114742e-02 2.475126
## 33 7.283105e-10 1.645261e-08 -6.159813
## 34 8.484073e-16 6.234331e-14 -8.047011
## 35 8.918085e-14 4.501051e-12 -7.456012
## 36 4.358848e-04 2.165760e-03 -3.517346
## 37 5.462515e-05 3.553785e-04 -4.034902
## 38 5.462515e-05 3.553785e-04 -4.034902
## 39 1.844675e-10 4.618672e-09 -6.373745
## 40 1.121152e-12 4.461114e-11 -7.114751
## 41 1.231335e-10 3.208666e-09 -6.435419
## 42 2.234152e-06 2.134968e-05 -4.731001
## 43 3.645805e-14 1.992105e-12 -7.573043
## 44 5.499877e-07 6.226809e-06 -5.007999
## 45 3.057586e-09 6.033071e-08 -5.928476
## 46 5.202791e-07 5.932481e-06 -5.018679
## 47 2.471836e-06 2.329600e-05 -4.710439
## 48 1.206832e-33 1.285880e-30 12.089044
## 49 4.509757e-14 2.389299e-12 -7.545379
## 50 9.905265e-03 3.212848e-02 -2.579119
## 51 4.470390e-18 4.843933e-16 8.666134
## 52 2.736898e-21 4.815685e-19 -9.472322
## 53 7.447739e-08 1.048486e-06 -5.380020
## 54 2.391319e-31 1.763965e-28 -11.646481
## 55 1.428941e-09 3.045073e-08 -6.052185
## 56 6.409238e-20 9.455598e-18 9.137196
## 57 1.058678e-23 2.603127e-21 -10.036012
## 58 2.385623e-17 2.276311e-15 8.473288
## 59 2.089240e-06 2.017600e-05 -4.744595
## 60 5.802382e-06 4.949330e-05 -4.533465
## 61 1.217456e-04 7.164651e-04 -3.842584
## 62 1.536145e-02 4.643804e-02 -2.423744
## 63 1.564118e-02 4.715961e-02 -2.417182
## 64 3.736837e-07 4.425482e-06 -5.081897
## 65 8.257920e-06 6.759652e-05 -4.458386
## 66 6.934729e-06 5.792734e-05 -4.495682
## 67 2.315941e-04 1.257216e-03 -3.681799
## 68 3.199370e-07 3.864025e-06 -5.111307
## 69 4.612698e-03 1.670448e-02 -2.832906
## 70 2.296893e-33 2.318533e-30 -12.036051
## 71 2.590311e-03 1.021163e-02 -3.012587
## 72 1.089813e-02 3.484168e-02 2.545948
## 73 4.305665e-03 1.574120e-02 -2.854854
## 74 2.058770e-14 1.182190e-12 -7.646903
## 75 6.738363e-11 1.846215e-09 -6.526368
## 76 7.529144e-05 4.699038e-04 -3.958914
## 77 3.741442e-04 1.898336e-03 -3.557680
## 78 1.524328e-02 4.613394e-02 -2.426547
## 79 1.252040e-10 3.253778e-09 -6.432885
## 80 1.158990e-16 9.792191e-15 -8.287248
## 81 3.745433e-10 8.912364e-09 -6.264284
## 82 2.896616e-10 7.023286e-09 -6.304213
## 83 2.551669e-18 2.845259e-16 -8.729781
## 84 9.138110e-17 7.789325e-15 -8.315481
## 85 8.359676e-08 1.160972e-06 -5.359188
## 86 6.371613e-04 3.010623e-03 -3.415281
## 87 2.715139e-12 1.005283e-10 -6.991732
## 88 6.024404e-06 5.110218e-05 -4.525531
## 89 4.889575e-06 4.264537e-05 4.569471
## 90 6.469758e-16 4.963339e-14 8.080130
## 91 1.790201e-07 2.281347e-06 -5.219900
## 92 4.321733e-08 6.455337e-07 -5.477174
## 93 1.100261e-13 5.424655e-12 -7.428271
## 94 2.490978e-03 9.868718e-03 3.024435
## 95 9.232364e-08 1.267484e-06 -5.341219
## 96 6.339797e-13 2.649041e-11 -7.192968
## 97 1.167648e-16 9.822072e-15 -8.286362
## 98 1.137040e-05 8.952088e-05 -4.389323
## 99 2.681197e-22 5.529320e-20 -9.711964
## 100 8.779835e-06 7.120019e-05 -4.445229
## 101 1.016119e-05 8.103182e-05 -4.413715
## 102 8.475900e-07 9.071388e-06 -4.924078
## 103 1.123147e-08 1.942366e-07 -5.710999
## 104 1.534287e-05 1.164468e-04 -4.323707
## 105 5.224919e-17 4.726826e-15 -8.381519
## 106 2.860225e-08 4.474409e-07 -5.549784
## 107 7.029321e-09 1.274247e-07 -5.790223
## 108 1.356250e-07 1.793898e-06 5.271078
## 109 2.322556e-11 7.048149e-10 -6.684158
## 110 6.904198e-20 1.003149e-17 -9.129146
## 111 1.076671e-04 6.436867e-04 -3.872630
## 112 9.277471e-08 1.270947e-06 -5.340336
## 113 1.216437e-10 3.174157e-09 -6.437267
## 114 2.543066e-15 1.723444e-13 -7.911500
## 115 7.196630e-09 1.302115e-07 -5.786270
## 116 8.002902e-15 4.796489e-13 -7.767534
## 117 1.493532e-13 7.125486e-12 -7.387733
## 118 4.709527e-04 2.324344e-03 -3.496756
## 119 6.727907e-04 3.154079e-03 3.400434
## 120 2.833151e-05 1.990366e-04 -4.186479
## 121 1.422101e-18 1.694067e-16 -8.795660
## 122 5.908200e-12 2.030705e-10 -6.881846
## 123 7.649635e-11 2.072208e-09 6.507334
## 124 4.137600e-04 2.068552e-03 -3.531148
## 125 4.427727e-06 3.898962e-05 -4.590223
## 126 7.738528e-13 3.191768e-11 -7.165709
## 127 1.165434e-02 3.689645e-02 -2.522441
## 128 5.957812e-06 5.060740e-05 -4.527881
## 129 2.297162e-04 1.249143e-03 -3.683874
## 130 1.996939e-08 3.253975e-07 -5.612266
## 131 2.663945e-25 8.240613e-23 -10.393154
## 132 2.343112e-03 9.348563e-03 3.042899
## 133 7.600101e-04 3.512346e-03 -3.366963
## 134 1.081201e-02 3.458732e-02 -2.548717
## 135 4.329422e-18 4.717840e-16 -8.669784
## 136 4.004766e-03 1.478772e-02 -2.877786
## 137 2.024309e-07 2.537530e-06 -5.197091
## 138 3.950766e-04 1.987731e-03 -3.543351
## 139 5.709522e-07 6.437561e-06 -5.000792
## 140 1.932018e-03 7.907422e-03 -3.100488
## 141 4.966567e-12 1.741386e-10 -6.906529
## 142 7.316133e-03 2.484790e-02 -2.682101
## 143 9.405745e-04 4.228617e-03 -3.307724
## 144 1.103551e-03 4.846576e-03 -3.262703
## 145 3.113337e-03 1.195170e-02 -2.956320
## 146 6.410486e-04 3.024519e-03 -3.413625
## 147 3.240273e-13 1.451991e-11 7.284016
## 148 1.834929e-13 8.602823e-12 -7.360303
## 149 6.812351e-05 4.312016e-04 -3.982746
## 150 3.808549e-04 1.928492e-03 3.553007
## 151 1.630522e-02 4.870994e-02 -2.402011
## 152 5.426259e-05 3.536195e-04 -4.036465
## 153 1.132847e-07 1.526836e-06 -5.304012
## 154 6.105338e-03 2.130149e-02 2.742070
## 155 1.311488e-07 1.743107e-06 -5.277233
## 156 5.535879e-15 3.436007e-13 -7.814096
## 157 2.515605e-14 1.414862e-12 -7.621081
## 158 1.503508e-10 3.844772e-09 6.405019
## 159 4.797228e-04 2.356712e-03 -3.491830
## 160 1.068462e-03 4.714065e-03 -3.271850
## [[1]]
## symbol ensembl logFC AveExpr t P.Value
## 1 DHRS9 ENSG00000073737.16 -0.5106057 5.330540 -6.101016 3.057586e-09
## 2 IFI30 ENSG00000216490.4 -1.1086826 10.167714 -13.547426 2.296893e-33
## 3 IFI30 ENSG00000216490.4 -1.1086826 10.167714 -13.547426 2.296893e-33
## 4 LPAR6 ENSG00000139679.15 -0.5045018 6.153460 -5.611465 4.321733e-08
## 5 SERPINA1 ENSG00000197249.13 0.6239298 7.571303 6.733910 7.649635e-11
## 6 TYROBP ENSG00000011600.11 -0.6820008 7.892520 -8.208443 5.535879e-15
## 7 TYROBP ENSG00000011600.11 -0.6820008 7.892520 -8.208443 5.535879e-15
## adj.P.Val z.std isoform_id gene_id estimates
## 1 6.033071e-08 -5.928476 ENST00000602501.5 ENSG00000073737.16 -0.5398283
## 2 2.318533e-30 -12.036051 ENST00000407280.4 ENSG00000216490.4 0.5197980
## 3 2.318533e-30 -12.036051 ENST00000600463.1 ENSG00000216490.4 -0.6825184
## 4 6.455337e-07 -5.477174 ENST00000465365.6 ENSG00000139679.15 -0.5925786
## 5 2.072208e-09 6.507334 ENST00000393088.8 ENSG00000197249.13 -0.4439107
## 6 3.436007e-13 -7.814096 ENST00000262629.8 ENSG00000011600.11 -0.1949865
## 7 3.436007e-13 -7.814096 ENST00000587837.5 ENSG00000011600.11 0.3024205
## se df pval regular_FDR
## 1 0.07746672 435.7763 1.18987866772115e-11 1.02722225384367e-8
## 2 0.07721825 437.7763 5.28182733000788e-11 3.3364401468262e-8
## 3 0.09755621 437.7763 9.91249031844696e-12 9.16869952705206e-9
## 4 0.09416851 437.7763 7.57769077819475e-10 3.43533852872881e-7
## 5 0.05329468 437.7763 1.05353870734862e-15 3.41069987270273e-12
## 6 0.02184097 437.7763 1.20818354352253e-17 7.82268639842252e-14
## 7 0.03526846 437.7763 1.72813527190952e-16 8.95139508143694e-13
## empirical_pval empirical_FDR
## 1 8.7578070262586094E-6 6.6711307109726999E-3
## 2 7.3788092865354997E-6 6.3701260570661004E-3
## 3 8.0674128900333706E-6 6.5293102012179399E-3
## 4 5.6816816063355102E-5 2.3895917808245799E-2
## 5 1.32928407695331e-7 4.30339103862672E-4
## 6 1.7968502696168e-8 1.08266642271835E-4
## 7 2.09017032070419e-8 1.08266642271835E-4
res <- res_LPS_name[!duplicated(res_LPS_name$symbol), ]
rownames(res) <- res$symbol
EnhancedVolcano(res,
lab = rownames(res),
x = 'logFC',
y = 'adj.P.Val')

volcano_plot(res_LPS, title = "DEG",
subtitle = "LPS vs unstimulated",
annotate_by = c('DHRS9', 'IFI30', 'LCP1', 'LPAR6', 'SERPINA1', 'TYROBP', 'CCR1', 'CD14', 'ADAM28', 'CSF1R', 'FCGR1A', 'GPR34', 'HLA_DPA1', 'IL6R', 'IRF8', 'MS4A4A', 'OLR1', 'RGS1', 'ITGAM', 'IL6', 'CCL5', 'IL23A', 'TNF', 'IDO1', 'IL12B'))
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text_repel).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_point).

sign <- subset(res, adj.P.Val < 0.05)
sign_LF <- subset(sign, logFC > 0)
length(sign_LF$symbol)
## [1] 734
sign_LF <- subset(sign, logFC < 0)
length(sign_LF$symbol)
## [1] 5713
sign_LF <- subset(sign, logFC > 1)
length(sign_LF$symbol)
## [1] 80
sign_LF <- subset(sign, logFC < -1)
length(sign_LF$symbol)
## [1] 47
IFNy
# Function Vulcano plot
volcano_plot <- function(res, title = NULL, subtitle = NULL, annotate_by = NULL, type ='ALS'){
res <-
mutate(res,
sig = case_when(
adj.P.Val >= 0.05 ~ "non_sig",
adj.P.Val < 0.05 & abs(logFC) < 1 ~ "sig",
adj.P.Val < 0.05 & abs(logFC) >= 1 ~ "sig - strong"
)) %>%
mutate(direction = ifelse(logFC > 0, "up", "down")) %>%
mutate(logFC = case_when(
logFC > 5 ~ Inf,
logFC < -5 ~ -Inf,
TRUE ~ logFC
)) %>%
mutate(class = paste(sig, direction))
if( type == "ALS"){
xpos <- 0.5
ymax <- 80
xlim <- c(-3,3)
}else{
xpos <- 0.025
ymax <- 8.5
xlim <- c(-0.042, 0.042)
}
de_tally <- group_by(res, sig, direction, class) %>% tally() %>%
filter(sig != "non_sig") %>%
mutate( position = ifelse(sig == "sig", xpos, 2) ) %>%
mutate(position = ifelse( direction == "down", -1 * position, position)) %>%
mutate(n = formatC(n, format="f", big.mark=",", digits=0))
plot <- res %>%
mutate( P.Value = ifelse( P.Value < 1e-90, Inf, P.Value)) %>% #threshold at 1e16
ggplot(aes(x = logFC, y = -log10(P.Value))) +
#geom_point(aes(colour = class ), size = 0.5) +
rasterise(geom_point(aes(colour = class ), size = 0.5), dpi = 300) +
scale_colour_manual(values = c("non_sig up" = "gray",
"non_sig down" = "gray",
"sig up" = "#EB7F56",
"sig - strong up" = "#B61927",
"sig down" = "#4F8FC4",
"sig - strong down" = "dodgerblue4"
)) +
theme_bw() +
labs(y = expression(-log[10]~P~value), x = expression(log[2]~"(fold change)"), title = title, subtitle = subtitle) +
guides(colour = FALSE) +
scale_y_continuous(expand = c(0,0), limits = c(0,ymax)) +
theme_bw() +
theme(
plot.title = element_text(hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5),
panel.border = element_blank(),
axis.ticks = element_line(colour = "black")
) +
geom_text(fontface = "bold", data = de_tally, aes(x = position, y = ymax - 0.5, label = n, colour = class), size = 2.5 ) +
scale_x_continuous(limits = xlim)
if(!is.null(annotate_by)){
plot <- plot +
ggrepel::geom_text_repel(
fontface = "italic",
data = filter(res, symbol %in% annotate_by),
aes(x = logFC, y = -log10(P.Value), label = symbol),
min.segment.length = unit(0, "lines"),
size = 2.5) +
geom_point(
data = filter(res, symbol %in% annotate_by), size = 0.8, colour = "black"
) +
geom_point(aes(colour = class ),
data = filter(res, symbol %in% annotate_by), size = 0.6
)
}
return(plot)
}
load("~/Documents/MiGASti/docs/2nd_pass/res_IFNy_name.Rdata")
res_IFNy <- res_IFNy_name
res_sign <- subset(res_IFNy, adj.P.Val < 0.05)
check_genes <- merge(res_sign, Patir, by = "symbol")
check_genes2 <- merge(check_genes, LPS_S, by = "symbol")
list(check_genes)
## [[1]]
## symbol ensembl logFC AveExpr t P.Value
## 1 ADAM28 ENSG00000042980.12 0.2445556 6.162735 3.338115 9.414765e-04
## 2 ATP8B4 ENSG00000104043.14 -0.3678090 4.792042 -3.320088 1.001867e-03
## 3 C1QA ENSG00000173372.17 0.4473711 5.375107 3.274262 1.174756e-03
## 4 C1QB ENSG00000173369.16 1.4950352 7.196920 12.212355 1.881100e-28
## 5 C1QC ENSG00000159189.12 0.9552025 4.014993 6.145629 2.379923e-09
## 6 C2 ENSG00000166278.15 1.2913424 3.652473 9.285673 2.360866e-18
## 7 CASP1 ENSG00000137752.24 0.5569359 6.968335 7.412606 1.029880e-12
## 8 CD53 ENSG00000143119.14 0.3816870 8.490063 5.455529 9.461957e-08
## 9 CD69 ENSG00000110848.8 0.3367950 6.162687 3.516587 5.010847e-04
## 10 CD74 ENSG00000019582.15 0.5537779 9.496285 5.622212 4.106910e-08
## 11 CD86 ENSG00000114013.16 0.3677995 5.727940 4.294569 2.324681e-05
## 12 CIITA ENSG00000179583.19 1.5161205 4.246414 11.054434 1.967703e-24
## 13 CLEC17A ENSG00000187912.11 -0.4473676 2.402258 -3.443822 6.465710e-04
## 14 CSF1R ENSG00000182578.13 -0.4510465 7.143409 -3.470767 5.909571e-04
## 15 CTSC ENSG00000109861.16 0.2868631 6.220004 3.670261 2.829209e-04
## 16 CTSS ENSG00000163131.11 0.8097270 7.955391 11.213049 4.425687e-25
## 17 CYBB ENSG00000165168.7 0.4503167 5.628404 4.549540 7.631678e-06
## 18 FCGR1A ENSG00000150337.13 1.1898768 4.865499 10.976600 4.520483e-24
## 19 FCGR1B ENSG00000198019.12 1.3807170 2.932521 11.134208 1.008166e-24
## 20 FGD2 ENSG00000146192.15 0.6743597 4.479590 6.223115 1.527285e-09
## 21 FGL2 ENSG00000127951.7 0.7536791 4.435974 7.021387 1.242799e-11
## 22 FYB1 ENSG00000082074.17 0.6205950 5.135832 6.998485 1.499991e-11
## 23 GIMAP2 ENSG00000106560.11 1.0552454 2.252500 9.266118 2.591245e-18
## 24 GIMAP4 ENSG00000133574.10 0.8980597 3.645304 8.017882 1.934534e-14
## 25 GPR183 ENSG00000169508.7 -0.3910048 8.314189 -4.164766 4.020115e-05
## 26 HAMP ENSG00000105697.9 -0.6065948 5.606156 -3.471816 5.870420e-04
## 27 HLA-DMA ENSG00000204257.15 0.9061608 4.691433 8.480273 8.005587e-16
## 28 HLA-DMB ENSG00000242574.9 0.8223149 4.844138 7.140873 6.037458e-12
## 29 HLA-DOA ENSG00000204252.14 0.9176943 3.116314 5.992123 5.431441e-09
## 30 HLA-DPA1 ENSG00000231389.7 0.7390717 6.811187 7.430903 9.840796e-13
## 31 HLA-DPB1 ENSG00000223865.11 0.7924517 5.661476 7.731348 1.363025e-13
## 32 HLA-DQA1 ENSG00000196735.11 0.4295870 5.253373 3.941001 9.981022e-05
## 33 HLA-DQB1 ENSG00000179344.16 0.7393403 5.101176 7.924740 3.900733e-14
## 34 HLA-DRA ENSG00000204287.14 0.5401374 9.045389 6.368700 6.657304e-10
## 35 HLA-DRB1 ENSG00000196126.11 0.5628333 7.588074 6.654644 1.240214e-10
## 36 HLA-DRB5 ENSG00000198502.6 0.5558522 4.836991 6.113118 2.860212e-09
## 37 IFI16 ENSG00000163565.18 0.5624209 6.797890 9.809994 4.408260e-20
## 38 IGSF6 ENSG00000140749.9 0.8961711 6.166063 8.789660 8.441929e-17
## 39 IL10RA ENSG00000110324.10 0.3745346 8.217334 3.382113 8.063416e-04
## 40 IRF5 ENSG00000128604.20 1.1480152 6.288376 10.604910 9.492382e-23
## 41 IRF8 ENSG00000140968.11 0.9152019 6.826973 8.971667 2.405256e-17
## 42 LY75 ENSG00000054219.11 0.5663322 3.029098 5.132330 4.876170e-07
## 43 MNDA ENSG00000163563.8 0.6392880 3.869912 5.303921 2.082913e-07
## 44 NCF4 ENSG00000100365.15 0.4050304 5.066535 4.623781 5.452224e-06
## 45 OLR1 ENSG00000173391.9 -0.3827518 7.807623 -4.428191 1.296483e-05
## 46 PTAFR ENSG00000169403.12 0.4051247 7.468216 4.721621 3.446669e-06
## 47 PTPN6 ENSG00000111679.17 0.4923307 6.684211 5.716994 2.489254e-08
## 48 PTPRC ENSG00000081237.20 0.3508692 6.941392 4.061360 6.121926e-05
## 49 SIGLEC9 ENSG00000129450.8 -0.3043973 5.167230 -3.466704 5.987334e-04
## 50 SP140 ENSG00000079263.19 0.6532135 3.230671 7.018352 1.203976e-11
## 51 SP140L ENSG00000185404.16 0.6381002 4.390976 8.376446 1.441256e-15
## 52 SUCNR1 ENSG00000198829.6 0.5290029 2.902352 4.955865 1.153527e-06
## 53 TFEC ENSG00000105967.16 0.2458685 5.228596 3.179087 1.617975e-03
## 54 TNFRSF1B ENSG00000028137.19 -0.6225944 9.380073 -3.954634 9.388946e-05
## 55 TNFSF8 ENSG00000106952.7 -0.4253568 4.743448 -4.795618 2.480627e-06
## 56 TRIM22 ENSG00000132274.16 1.1680970 5.310909 11.283583 4.182917e-25
## adj.P.Val z.std
## 1 3.178975e-02 3.307456
## 2 3.353370e-02 -3.290002
## 3 3.736426e-02 3.244939
## 4 7.215523e-26 11.063729
## 5 2.535808e-07 5.969493
## 6 5.031006e-16 8.738567
## 7 1.507791e-10 7.126454
## 8 8.682817e-06 5.336765
## 9 1.941476e-02 3.480176
## 10 3.899328e-06 5.486192
## 11 1.393283e-03 4.231180
## 12 5.896653e-22 10.200739
## 13 2.375591e-02 -3.411287
## 14 2.209350e-02 -3.435731
## 15 1.216623e-02 3.630456
## 16 1.414671e-22 10.344642
## 17 5.082221e-04 4.475264
## 18 1.333821e-21 10.119646
## 19 3.118648e-22 10.265482
## 20 1.654904e-07 6.041457
## 21 1.678566e-09 6.775147
## 22 1.997800e-09 6.747901
## 23 5.430515e-16 8.728040
## 24 3.198484e-12 7.654906
## 25 2.234834e-03 -4.106321
## 26 2.199000e-02 -3.437532
## 27 1.395810e-13 8.054115
## 28 8.390753e-10 6.878763
## 29 5.661391e-07 5.833384
## 30 1.453954e-10 7.132715
## 31 2.142742e-11 7.399885
## 32 4.998068e-03 3.891053
## 33 6.286737e-12 7.564262
## 34 7.600025e-08 6.174025
## 35 1.505447e-08 6.434327
## 36 3.014067e-07 5.939426
## 37 9.830932e-18 9.177595
## 38 1.587331e-14 8.324873
## 39 2.832386e-02 3.350609
## 40 2.638469e-20 9.817221
## 41 4.755712e-15 8.472333
## 42 4.193725e-05 5.031122
## 43 1.849453e-05 5.191782
## 44 3.763967e-04 4.546589
## 45 8.152541e-04 -4.360698
## 46 2.532708e-04 4.642231
## 47 2.448941e-06 5.574021
## 48 3.252421e-03 4.008061
## 49 2.234068e-02 -3.432188
## 50 1.637664e-09 6.779734
## 51 2.468022e-13 7.981876
## 52 9.414257e-05 4.863458
## 53 4.766688e-02 3.152647
## 54 4.726262e-03 -3.905864
## 55 1.882483e-04 -4.709716
## 56 1.359732e-22 10.350044
## [[1]]
## [1] symbol ensembl logFC AveExpr t
## [6] P.Value adj.P.Val z.std isoform_id gene_id
## [11] estimates se df pval regular_FDR
## [16] empirical_pval empirical_FDR
## <0 rows> (or 0-length row.names)
res <- res_IFNy_name[!duplicated(res_IFNy_name$symbol), ]
rownames(res) <- res$symbol
EnhancedVolcano(res,
lab = rownames(res),
x = 'logFC',
y = 'adj.P.Val')

volcano_plot(res_IFNy, title = "DEG",
subtitle = "IFNy vs unstimulated",
annotate_by = c('C1QB', 'C2', 'CIITA', 'GBP1', 'GBP5', 'IDO1', 'IFITM2', 'IL15', 'IL18BP', 'IRF1', 'MLKL', 'OAS1', 'CXCL9', 'CXCL10','WARS', 'CXCL10', 'IRF1', 'CCL24', 'TMEM160', 'HPS6', 'IL24'))
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 2 rows containing missing values (geom_text_repel).
## Warning: Removed 2 rows containing missing values (geom_point).
## Warning: Removed 2 rows containing missing values (geom_point).

sign <- subset(res, adj.P.Val < 0.05)
sign_LF <- subset(sign, logFC > 0)
length(sign_LF$symbol)
## [1] 433
sign_LF <- subset(sign, logFC < 0)
length(sign_LF$symbol)
## [1] 224
sign_LF <- subset(sign, logFC > 1)
length(sign_LF$symbol)
## [1] 94
sign_LF <- subset(sign, logFC < -1)
length(sign_LF$symbol)
## [1] 0
R848
# Function Vulcano plot
volcano_plot <- function(res, title = NULL, subtitle = NULL, annotate_by = NULL, type ='ALS'){
res <-
mutate(res,
sig = case_when(
adj.P.Val >= 0.05 ~ "non_sig",
adj.P.Val < 0.05 & abs(logFC) < 1 ~ "sig",
adj.P.Val < 0.05 & abs(logFC) >= 1 ~ "sig - strong"
)) %>%
mutate(direction = ifelse(logFC > 0, "up", "down")) %>%
mutate(logFC = case_when(
logFC > 5 ~ Inf,
logFC < -5 ~ -Inf,
TRUE ~ logFC
)) %>%
mutate(class = paste(sig, direction))
if( type == "ALS"){
xpos <- 0.5
ymax <- 30
xlim <- c(-3,3)
}else{
xpos <- 0.025
ymax <- 8.5
xlim <- c(-0.042, 0.042)
}
de_tally <- group_by(res, sig, direction, class) %>% tally() %>%
filter(sig != "non_sig") %>%
mutate( position = ifelse(sig == "sig", xpos, 2) ) %>%
mutate(position = ifelse( direction == "down", -1 * position, position)) %>%
mutate(n = formatC(n, format="f", big.mark=",", digits=0))
plot <- res %>%
mutate( P.Value = ifelse( P.Value < 1e-90, Inf, P.Value)) %>% #threshold at 1e16
ggplot(aes(x = logFC, y = -log10(P.Value))) +
#geom_point(aes(colour = class ), size = 0.5) +
rasterise(geom_point(aes(colour = class ), size = 0.5), dpi = 300) +
scale_colour_manual(values = c("non_sig up" = "gray",
"non_sig down" = "gray",
"sig up" = "#EB7F56",
"sig - strong up" = "#B61927",
"sig down" = "#4F8FC4",
"sig - strong down" = "dodgerblue4"
)) +
theme_bw() +
labs(y = expression(-log[10]~P~value), x = expression(log[2]~"(fold change)"), title = title, subtitle = subtitle) +
guides(colour = FALSE) +
scale_y_continuous(expand = c(0,0), limits = c(0,ymax)) +
theme_bw() +
theme(
plot.title = element_text(hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5),
panel.border = element_blank(),
axis.ticks = element_line(colour = "black")
) +
geom_text(fontface = "bold", data = de_tally, aes(x = position, y = ymax - 0.5, label = n, colour = class), size = 2.5 ) +
scale_x_continuous(limits = xlim)
if(!is.null(annotate_by)){
plot <- plot +
ggrepel::geom_text_repel(
fontface = "italic",
data = filter(res, symbol %in% annotate_by),
aes(x = logFC, y = -log10(P.Value), label = symbol),
min.segment.length = unit(0, "lines"),
size = 2.5) +
geom_point(
data = filter(res, symbol %in% annotate_by), size = 0.8, colour = "black"
) +
geom_point(aes(colour = class ),
data = filter(res, symbol %in% annotate_by), size = 0.6
)
}
return(plot)
}
load("~/Documents/MiGASti/docs/2nd_pass/res_R848_name.Rdata")
res_R848 <- res_R848_name
res <- res_R848_name[!duplicated(res_R848_name$symbol), ]
rownames(res) <- res$symbol
EnhancedVolcano(res,
lab = rownames(res),
x = 'logFC',
y = 'adj.P.Val')

volcano_plot(res_R848, title = "DEG",
subtitle = "R848 vs unstimulated",
annotate_by = c('C12orf57', 'CXCL3', 'DNAAF1', 'GAS7', 'IFI30', 'IL6', 'LUCAT1', 'MCPH1', 'SPP1', 'WDR74', 'TNF', 'IL6', 'IL12B', 'IL23A', 'RAB7B', 'ITGB7'))

sign <- subset(res, adj.P.Val < 0.05)
sign_LF <- subset(sign, logFC > 0)
length(sign_LF$symbol)
## [1] 345
sign_LF <- subset(sign, logFC < 0)
length(sign_LF$symbol)
## [1] 2320
sign_LF <- subset(sign, logFC > 1)
length(sign_LF$symbol)
## [1] 51
sign_LF <- subset(sign, logFC < -1)
length(sign_LF$symbol)
## [1] 28
DEX
# Function Vulcano plot
volcano_plot <- function(res, title = NULL, subtitle = NULL, annotate_by = NULL, type ='ALS'){
res <-
mutate(res,
sig = case_when(
adj.P.Val >= 0.05 ~ "non_sig",
adj.P.Val < 0.05 & abs(logFC) < 1 ~ "sig",
adj.P.Val < 0.05 & abs(logFC) >= 1 ~ "sig - strong"
)) %>%
mutate(direction = ifelse(logFC > 0, "up", "down")) %>%
mutate(logFC = case_when(
logFC > 5 ~ Inf,
logFC < -5 ~ -Inf,
TRUE ~ logFC
)) %>%
mutate(class = paste(sig, direction))
if( type == "ALS"){
xpos <- 0.5
ymax <- 40
xlim <- c(-3,3)
}else{
xpos <- 0.025
ymax <- 8.5
xlim <- c(-0.042, 0.042)
}
de_tally <- group_by(res, sig, direction, class) %>% tally() %>%
filter(sig != "non_sig") %>%
mutate( position = ifelse(sig == "sig", xpos, 2) ) %>%
mutate(position = ifelse( direction == "down", -1 * position, position)) %>%
mutate(n = formatC(n, format="f", big.mark=",", digits=0))
plot <- res %>%
mutate( P.Value = ifelse( P.Value < 1e-90, Inf, P.Value)) %>% #threshold at 1e16
ggplot(aes(x = logFC, y = -log10(P.Value))) +
#geom_point(aes(colour = class ), size = 0.5) +
rasterise(geom_point(aes(colour = class ), size = 0.5), dpi = 300) +
scale_colour_manual(values = c("non_sig up" = "gray",
"non_sig down" = "gray",
"sig up" = "#EB7F56",
"sig - strong up" = "#B61927",
"sig down" = "#4F8FC4",
"sig - strong down" = "dodgerblue4"
)) +
theme_bw() +
labs(y = expression(-log[10]~P~value), x = expression(log[2]~"(fold change)"), title = title, subtitle = subtitle) +
guides(colour = FALSE) +
scale_y_continuous(expand = c(0,0), limits = c(0,ymax)) +
theme_bw() +
theme(
plot.title = element_text(hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5),
panel.border = element_blank(),
axis.ticks = element_line(colour = "black")
) +
geom_text(fontface = "bold", data = de_tally, aes(x = position, y = ymax - 0.5, label = n, colour = class), size = 2.5 ) +
scale_x_continuous(limits = xlim)
if(!is.null(annotate_by)){
plot <- plot +
ggrepel::geom_text_repel(
fontface = "italic",
data = filter(res, symbol %in% annotate_by),
aes(x = logFC, y = -log10(P.Value), label = symbol),
min.segment.length = unit(0, "lines"),
size = 2.5) +
geom_point(
data = filter(res, symbol %in% annotate_by), size = 0.8, colour = "black"
) +
geom_point(aes(colour = class ),
data = filter(res, symbol %in% annotate_by), size = 0.6
)
}
return(plot)
}
load("~/Documents/MiGASti/docs/2nd_pass/res_DEX_name.Rdata")
res_DEX <- res_DEX_name
res <- res_DEX_name[!duplicated(res_DEX_name$symbol), ]
rownames(res) <- res$symbol
EnhancedVolcano(res,
lab = rownames(res),
x = 'logFC',
y = 'adj.P.Val')

volcano_plot(res_DEX, title = "DEG",
subtitle = "DEX vs unstimulated",
annotate_by = c('FKBP5', 'ALOX15B', 'CD163', 'MRC1', 'TSC22D3', 'IL27RA', 'IL19', 'CXCL1', 'IL1B', 'CCL2', 'TLR2', 'TMEM119', 'MS4A4A', 'TMEM163', 'CD72'))
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 3 rows containing missing values (geom_text_repel).
## Warning: Removed 3 rows containing missing values (geom_point).
## Warning: Removed 3 rows containing missing values (geom_point).

EnhancedVolcano(res,
lab = rownames(res),
x = 'logFC',
y = 'adj.P.Val',
selectLab = c('FKBP5', 'ZBTB16', 'ALOX15B', 'PIK3IP1', 'CA12', 'TNFSF8'),
xlab = bquote(~Log[2]~ 'fold change'),
pCutoff = 0.05,
FCcutoff = 1.0,
pointSize = 2.0,
labSize = 3.0,
legendPosition = 'right',
legendLabSize = 6,
legendIconSize = 2.0)

sign <- subset(res, adj.P.Val < 0.05)
sign_LF <- subset(sign, logFC > 0)
length(sign_LF$symbol)
## [1] 861
sign_LF <- subset(sign, logFC < 0)
length(sign_LF$symbol)
## [1] 161
sign_LF <- subset(sign, logFC > 1)
length(sign_LF$symbol)
## [1] 500
sign_LF <- subset(sign, logFC < -1)
length(sign_LF$symbol)
## [1] 112
IL4
# Function Vulcano plot
volcano_plot <- function(res, title = NULL, subtitle = NULL, annotate_by = NULL, type ='ALS'){
res <-
mutate(res,
sig = case_when(
adj.P.Val >= 0.05 ~ "non_sig",
adj.P.Val < 0.05 & abs(logFC) < 1 ~ "sig",
adj.P.Val < 0.05 & abs(logFC) >= 1 ~ "sig - strong"
)) %>%
mutate(direction = ifelse(logFC > 0, "up", "down")) %>%
mutate(logFC = case_when(
logFC > 5 ~ Inf,
logFC < -5 ~ -Inf,
TRUE ~ logFC
)) %>%
mutate(class = paste(sig, direction))
if( type == "ALS"){
xpos <- 0.5
ymax <- 30
xlim <- c(-3,3)
}else{
xpos <- 0.025
ymax <- 8.5
xlim <- c(-0.042, 0.042)
}
de_tally <- group_by(res, sig, direction, class) %>% tally() %>%
filter(sig != "non_sig") %>%
mutate( position = ifelse(sig == "sig", xpos, 2) ) %>%
mutate(position = ifelse( direction == "down", -1 * position, position)) %>%
mutate(n = formatC(n, format="f", big.mark=",", digits=0))
plot <- res %>%
mutate( P.Value = ifelse( P.Value < 1e-90, Inf, P.Value)) %>% #threshold at 1e16
ggplot(aes(x = logFC, y = -log10(P.Value))) +
#geom_point(aes(colour = class ), size = 0.5) +
rasterise(geom_point(aes(colour = class ), size = 0.5), dpi = 300) +
scale_colour_manual(values = c("non_sig up" = "gray",
"non_sig down" = "gray",
"sig up" = "#EB7F56",
"sig - strong up" = "#B61927",
"sig down" = "#4F8FC4",
"sig - strong down" = "dodgerblue4"
)) +
theme_bw() +
labs(y = expression(-log[10]~P~value), x = expression(log[2]~"(fold change)"), title = title, subtitle = subtitle) +
guides(colour = FALSE) +
scale_y_continuous(expand = c(0,0), limits = c(0,ymax)) +
theme_bw() +
theme(
plot.title = element_text(hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5),
panel.border = element_blank(),
axis.ticks = element_line(colour = "black")
) +
geom_text(fontface = "bold", data = de_tally, aes(x = position, y = ymax - 0.5, label = n, colour = class), size = 2.5 ) +
scale_x_continuous(limits = xlim)
if(!is.null(annotate_by)){
plot <- plot +
ggrepel::geom_text_repel(
fontface = "italic",
data = filter(res, symbol %in% annotate_by),
aes(x = logFC, y = -log10(P.Value), label = symbol),
min.segment.length = unit(0, "lines"),
size = 2.5) +
geom_point(
data = filter(res, symbol %in% annotate_by), size = 0.8, colour = "black"
) +
geom_point(aes(colour = class ),
data = filter(res, symbol %in% annotate_by), size = 0.6
)
}
return(plot)
}
load("~/Documents/MiGASti/docs/2nd_pass/res_IL4_name.Rdata")
res <- res_IL4_name[!duplicated(res_IL4_name$symbol), ]
res_IL4 <- res_IL4_name
rownames(res) <- res$symbol
EnhancedVolcano(res,
lab = rownames(res),
x = 'logFC',
y = 'adj.P.Val')

volcano_plot(res_IL4, title = "DEG",
subtitle = "IL4 vs unstimulated",
annotate_by = c('ARHGAP25', 'PPARG', 'MAOA', 'MS4A4A', 'SCIMP', 'FCER', 'IL12B', 'ZNF709', 'FCAMR', 'CTSC', 'CLEC4A', 'SPINT2', 'CISH', 'P2RY12'))
## Warning: Removed 3 rows containing missing values (geom_point).
## Warning: Removed 3 rows containing missing values (geom_text_repel).
## Warning: Removed 3 rows containing missing values (geom_point).
## Warning: Removed 3 rows containing missing values (geom_point).

EnhancedVolcano(res,
lab = rownames(res),
x = 'logFC',
y = 'adj.P.Val',
selectLab = c('SPINT2', 'CISH', 'CTSC', 'TGM2', 'MS4A4A', 'P2RY12', 'CLEC5A', 'ST3GAL1'),
xlab = bquote(~Log[2]~ 'fold change'),
pCutoff = 0.05,
FCcutoff = 1.0,
pointSize = 2.0,
labSize = 3.0,
legendPosition = 'right',
legendLabSize = 6,
legendIconSize = 2.0)

sign <- subset(res, adj.P.Val < 0.05)
sign_LF <- subset(sign, logFC > 0)
length(sign_LF$symbol)
## [1] 94
sign_LF <- subset(sign, logFC < 0)
length(sign_LF$symbol)
## [1] 3
sign_LF <- subset(sign, logFC > 1)
length(sign_LF$symbol)
## [1] 79
sign_LF <- subset(sign, logFC < -1)
length(sign_LF$symbol)
## [1] 3
overlap <- merge(sign_LF, Patir, by = "symbol")
list(overlap$symbol)
## [[1]]
## character(0)
ATP
# Function Vulcano plot
volcano_plot <- function(res, title = NULL, subtitle = NULL, annotate_by = NULL, type ='ALS'){
res <-
mutate(res,
sig = case_when(
adj.P.Val >= 0.05 ~ "non_sig",
adj.P.Val < 0.05 & abs(logFC) < 1 ~ "sig",
adj.P.Val < 0.05 & abs(logFC) >= 1 ~ "sig - strong"
)) %>%
mutate(direction = ifelse(logFC > 0, "up", "down")) %>%
mutate(logFC = case_when(
logFC > 5 ~ Inf,
logFC < -5 ~ -Inf,
TRUE ~ logFC
)) %>%
mutate(class = paste(sig, direction))
if( type == "ALS"){
xpos <- 0.5
ymax <- 10
xlim <- c(-3,3)
}else{
xpos <- 0.025
ymax <- 8.5
xlim <- c(-0.042, 0.042)
}
de_tally <- group_by(res, sig, direction, class) %>% tally() %>%
filter(sig != "non_sig") %>%
mutate( position = ifelse(sig == "sig", xpos, 2) ) %>%
mutate(position = ifelse( direction == "down", -1 * position, position)) %>%
mutate(n = formatC(n, format="f", big.mark=",", digits=0))
plot <- res %>%
mutate( P.Value = ifelse( P.Value < 1e-90, Inf, P.Value)) %>% #threshold at 1e16
ggplot(aes(x = logFC, y = -log10(P.Value))) +
#geom_point(aes(colour = class ), size = 0.5) +
rasterise(geom_point(aes(colour = class ), size = 0.5), dpi = 300) +
scale_colour_manual(values = c("non_sig up" = "gray",
"non_sig down" = "gray",
"sig up" = "#EB7F56",
"sig - strong up" = "#B61927",
"sig down" = "#4F8FC4",
"sig - strong down" = "dodgerblue4"
)) +
theme_bw() +
labs(y = expression(-log[10]~P~value), x = expression(log[2]~"(fold change)"), title = title, subtitle = subtitle) +
guides(colour = FALSE) +
scale_y_continuous(expand = c(0,0), limits = c(0,ymax)) +
theme_bw() +
theme(
plot.title = element_text(hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5),
panel.border = element_blank(),
axis.ticks = element_line(colour = "black")
) +
geom_text(fontface = "bold", data = de_tally, aes(x = position, y = ymax - 0.5, label = n, colour = class), size = 2.5 ) +
scale_x_continuous(limits = xlim)
if(!is.null(annotate_by)){
plot <- plot +
ggrepel::geom_text_repel(
fontface = "italic",
data = filter(res, symbol %in% annotate_by),
aes(x = logFC, y = -log10(P.Value), label = symbol),
min.segment.length = unit(0, "lines"),
size = 2.5) +
geom_point(
data = filter(res, symbol %in% annotate_by), size = 0.8, colour = "black"
) +
geom_point(aes(colour = class ),
data = filter(res, symbol %in% annotate_by), size = 0.6
)
}
return(plot)
}
load("~/Documents/MiGASti/docs/2nd_pass/res_ATP_name.Rdata")
res <- res_ATP_name[!duplicated(res_ATP_name$symbol), ]
res_ATP <- res_ATP_name
rownames(res) <- res$symbol
EnhancedVolcano(res,
lab = rownames(res),
x = 'logFC',
y = 'adj.P.Val')

volcano_plot(res_ATP, title = "DEG",
subtitle = "ATP vs unstimulated",
annotate_by = c('LINC-PINT', 'NR4A2', 'ZNF26', 'OVOL1', 'EGR3', 'RN7SK', 'MAP1A', 'TMEM150B'))
## Warning: Removed 4 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text_repel).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_point).

EnhancedVolcano(res,
lab = rownames(res),
x = 'logFC',
y = 'adj.P.Val',
selectLab = c('NR4A3', 'OVOL1', 'PALM2', 'MICA'),
xlab = bquote(~Log[2]~ 'fold change'),
pCutoff = 0.05,
FCcutoff = 1.0,
pointSize = 2.0,
labSize = 3.0,
legendPosition = 'right',
legendLabSize = 6,
legendIconSize = 2.0)

sign <- subset(res, adj.P.Val < 0.05)
sign_LF <- subset(sign, logFC > 0)
length(sign_LF$symbol)
## [1] 65
sign_LF <- subset(sign, logFC < 0)
length(sign_LF$symbol)
## [1] 79
sign_LF <- subset(sign, logFC > 1)
length(sign_LF$symbol)
## [1] 58
sign_LF <- subset(sign, logFC < -1)
length(sign_LF$symbol)
## [1] 59